如何在 Java 中将 JSON 转换为 Map

您所在的位置:网站首页 gson 字符串转map 如何在 Java 中将 JSON 转换为 Map

如何在 Java 中将 JSON 转换为 Map

#如何在 Java 中将 JSON 转换为 Map | 来源: 网络整理| 查看: 265

Java 中 Jackson 库将 JSON 转化为 Map Java 中 GSON 库将 JSON 转换为 Map

我们将介绍如何在 Java 中将现有的 JSON 转换为 Map。JSON 经常被用来结构化数据,但有时我们必须将 JSON 值转换成其他数据类型,然后再对其进行处理。

Java 中创建了几个库来处理 JSON。我们将看到两个最常用的 JSON 解析库,它们允许我们进行许多 JSON 操作。

下面是我们将在本教程中工作的 JSON,以便更好地理解。

{ "login" : { "userName" : "John Doe", "email" : "[email protected]" } } Java 中 Jackson 库将 JSON 转化为 Map

我们必须在我们的项目中加入下面的依赖关系,这样才能继承 Jackson 库的方法和类。

com.fasterxml.jackson.core jackson-databind 2.11.2 compile

添加依赖关系后,我们将首先使用 FileInputStream() 方法获取本地 JSON 文件。

我们需要调用 Jackson 库中的 ObjectMapper().readValue() 来将我们的 JSON 转换为 Map。readValue(JSON, ClassType) 函数需要两个参数,即 JSON 和我们希望 JSON 被格式化的 ClassType。由于我们要将 JSON 转换为 Map 格式,我们将使用 Hashmap.class 作为 ClassType。

import com.fasterxml.jackson.databind.ObjectMapper; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.HashMap; public class Main { public static void main(String[] args) throws IOException { InputStream getLocalJsonFile = new FileInputStream("/sample.json"); HashMap jsonMap = new ObjectMapper().readValue(getLocalJsonFile, HashMap.class); System.out.println(jsonMap); } }

输出:

{login={userName=John Doe, [email protected]}} Java 中 GSON 库将 JSON 转换为 Map

首先,我们必须包含我们项目的依赖性,以在我们的应用程序中包含所有的 GSON 方法和类。

com.google.code.gson gson 2.8.6

GSON 是一个广泛使用的 JSON 库,我们将对其进行解析并转换成 Java Map。

Gson().fromJson(json, type) 需要两个参数,其中一个是 JSON 文件,我们可以通过使用 new JsonReader(new FileReader(jsonFilePath)) 获得,第二个参数是我们希望 JSON 的类型。我们将使用 TypeToken 来实现。

请看下面的例子。

import com.google.common.reflect.TypeToken; import com.google.gson.Gson; import com.google.gson.stream.JsonReader; import java.io.FileReader; import java.io.IOException; import java.lang.reflect.Type; import java.util.Map; public class Main { public static void main(String[] args) throws IOException { JsonReader getLocalJsonFile = new JsonReader(new FileReader("/sample.json")); Type mapTokenType = new TypeToken() {}.getType(); Map jsonMap = new Gson().fromJson(getLocalJsonFile, mapTokenType); System.out.println(jsonMap); } }

输出:

{login={userName=John Doe, [email protected]}}


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3